attribute vec4 qt_Vertex;
attribute vec4 qt_MultiTexCoord0;
uniform mat4 qt_ModelViewProjectionMatrix;
varying vec4 qt_TexCoord0;


void main(void)
{
    gl_Position = qt_ModelViewProjectionMatrix * qt_Vertex;
    qt_TexCoord0 = qt_MultiTexCoord0;
    //BT.601 Y'CbCr 和 R'G'B[0,255] 之间转换关系
    //	| Y'601 |   |  0.2568   0.5041   0.0979 ||R'255|   | 16|
    //	| Cb    | = | -0.1482  -0.2910   0.4392 ||G'255| + |128|
    //	| Cr    |   |  0.4392  -0.3678  -0.0714 ||B'255|   |128|

    //BT.601 Y'CbCr 和 R'G'B[0,219] 之间转换关系
    //	| Y'601 |   |  0.2990   0.5870   0.1140 ||R'219|   | 16|
    //	| Cb    | = | -0.1726  -0.3388   0.5114 ||G'219| + |128|
    //	| Cr    |   |  0.5114  -0.4282  -0.0832 ||B'219|   |128|

    //BT.709 Y'CbCr 和 R'G'B[0,255] 之间转换关系
    //	| Y'709 |   |  0.1829   0.6141   0.0618 ||R'255|   | 16|
    //	| Cb    | = | -0.1005  -0.3384   0.4389 ||G'255| + |128|
    //	| Cr    |   |  0.4389  -0.3985  -0.0404 ||B'255|   |128|

    //BT.709 Y'CbCr 和 R'G'B[0,219] 之间转换关系
    //	| Y'709 |   |  0.2130   0.7150   0.0720 ||R'219|   | 16|
    //	| Cb    | = | -0.1170  -0.3940   0.5110 ||G'219| + |128|
    //	| Cr    |   |  0.5110  -0.4640  -0.0470 ||B'219|   |128|

    //BT.601 Y'CbCr R'G'B'[0,255]
    //RGB颜色空间到YUV颜色空间的转换公式:
    //  Y = 0.256788 * R + 0.504129 * G + 0.097906 * B +  16;
    //  U =-0.148223 * R - 0.290993 * G + 0.439216 * B + 128;
    //  V = 0.439216 * R - 0.367788 * G - 0.071427 * B + 128;

    //YUV颜色空间到RGB颜色空间的转换公式:
    //  B = 1.164383 * ( Y - 16 ) + 2.017232 * ( U - 128 );
    //  G = 1.164383 * ( Y - 16 ) - 0.391762 * ( U - 128 ) - 0.812968 * ( V - 128 );
    //  R = 1.164383 * ( Y - 16 ) + 1.596027 * ( V - 128 );

    //BT.601 Y'CbCr R'G'B'[0,219]
    //YUV 与 RGB 的转换公式：
    //  Y = 0.299 * R + 0.587 * G + 0.114 * B
    //  U = 0.436 * ( B - Y ) / ( 1 - 0.114 )
    //  V = 0.615 * ( R - Y ) / ( 1 - 0.299 )
    //U 和 V 元件可以被表示成原始的 R、 G，和 B:
    //  Y = 0.299 * R + 0.587 * G + 0.114 * B
    //  U =-0.14713 * R - 0.28886 * G + 0.436 * B
    //  V = 0.615 * R - 0.51499 * G - 0.10001 * B
    //逆转换，从 YUV 到 RGB
    //  R = Y + 1.13983 * V
    //  G = Y - 0.39465 * U - 0.58060 * V
    //  B = Y + 2.03211 * U

//    if (0 == YCbCrType)
//    {
//        RGB_Y = vec4(+0.2568, +0.5041, +0.0979, 16.0/255.0);
//        RGB_U = vec4(-0.1482, -0.2910, +0.4392, 128.0/255.0);
//        RGB_V = vec4(+0.4392, -0.3678, -0.0714, 128.0/255.0);
//    }
//    else if (1 == YCbCrType)
//    {
//        RGB_Y = vec4(+0.2990, +0.5870, +0.1140, 16.0/255.0);
//        RGB_U = vec4(-0.1726, -0.3388, +0.5114, 128.0/255.0);
//        RGB_V = vec4(+0.5114, -0.4282, -0.0832, 128.0/255.0);
//    }
//    else if (2 == YCbCrType)
//    {
//        RGB_Y = vec4(+0.1829, +0.6141, +0.0618, 16.0/255.0);
//        RGB_U = vec4(-0.1005, -0.3384, +0.4389, 128.0/255.0);
//        RGB_V = vec4(+0.4389, -0.3985, -0.0404, 128.0/255.0);
//    }
//    else if (3 == YCbCrType)
//    {
//        RGB_Y = vec4(+0.2130, +0.7150, +0.0720, 16.0/255.0);
//        RGB_U = vec4(-0.1170, -0.3940, +0.5110, 128.0/255.0);
//        RGB_V = vec4(+0.5110, -0.4640, -0.0470, 128.0/255.0);
//    }
}
